A couple of other comments about the code:
First, if you are running this on an actual Arduino Uno board, why are you declaring the CPU clock frequency as 1MHz? Unless you have changed the crystal, it should be 16MHz.
#define F_CPU 16000000UL
Second, you should not use a delay for a fixed period of time to wait for the ADC to finish. (And especially when you are incorrectly specifying
F_CPU -
_delay_ms() will be highly inaccurate then.) The ATmega328P datasheet says this about what happens when the conversion is finished:
A single conversion is started by ... writing a logical one to the ADC Start Conversion bit, ADSC. This bit stays high as long as the conversion is in progress and will be cleared by hardware when the conversion is completed.
So you should instead wait until the ADSC bit is zero, like so:
loop_until_bit_is_clear(ADCSRA, ADSC);