Lo primero que veo:
unsigned char ADCResult;
en 8 bits nunca vas a poder almacenar los 10 bits del ADC, por lo cual jamas vas a superar los 255 como maximo.
usa unsigned int, que es de 16 bits.
Si aun asi no funciona es otra cosa y deberia verlo con mas detalle.