can ATmega168 deal with 12-bit input?

8 bit means the data path through the CPU is 8 bits wide. Operations on data larger than 8 bits require multiple clock cycles to complete.

The MCP320x family work fine with the ATmega - you'll store a 12 bit value in a 16 bit int, which just means the high 4 bits will always be zero.

-j