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' and you should be good to go in no time with the included examples.
    
CRC is quite robust and fast for simple applications.