Arduino Uno ADCH register stuck at 255 when read from ISR
It would seem the problem lies here:

// Set Register to all zeros since Vref
// will be set to internal voltge and
// analog pin A0 is used.
ADMUX = 0x00;


According to the datasheet, the bits REFS[1:0] of the ADMUX register
select the voltage reference as:


00: AREF, Internal V ref turned off
01: AVCC with external capacitor at AREF pin
10: Reserved
11: Internal 1.1V Voltage Reference with external capacitor at AREF pin


Settings those bits to zero means that you are now supposed to provide
your own reference through the AREF pin. If you want to use the 5&nbsp;V
supply as a reference, you should set them to 01. This is confirmed by
the block schematic. Here is the part of that schematic relative to the
reference voltage:



When REFS0 is zero, the highlighted transistor does not conduct, hence
the only way to provide a voltage reference is through the AREF pin.