How to detect change (1 or 0) on PORTC of Atmega8?
if ((PINC &amp; 0x0F) != 0x0F) setDirection();


This tests if any of the 4 bits are not high. The tests you tried require that ALL of the bits be low.