Error checking is actually very easy and there is an AVR lib that does this in a one liner.
Read up on 'util/crc16.h' util/crc16.h
and you should be good to go in no time with the included examples.
CRC is quite robust and fast for simple applications.