Пример для ATMega8, инициализация АЦП:

ADCSRA |= (1<<ADEN) // Разрешение использования АЦП
|(1<<ADSC)//Запуск преобразования
|(1<<ADFR)//Непрерывный режим работы АЦП
|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0)//Делитель 128, т.е. 8000000/128 = 62,5 кГц, т.е. меньше 200 кГц, точность нормальная
|(1<<ADIE);//Разрешение прерывания от АЦП
//ADMUX |= (1<<REFS1)|(1<<REFS0); //Внутренний источник опорного напряжения 2,56 Вольт
ADMUX |= (1<<REFS0); //Внешний источник опорного напряжения = Uпитания = 5 Вольт
ADMUX |= (1<<MUX2)|(1<<MUX0);// вход ADC5

ADCSRA — управляющий и статусный регистр, биты:
7 6 5 4 3 2 1 0 Описание и примеры
ADEN ADCSRA |= (1<<ADEN); // лог. 1 разрешение использования АЦП
ADSC ADCSRA |= (1<<ADSC); // лог. 1 заставляет АЦП начинать преобразование
ADFR для ATMega8 и др. Используется в режиме с использованием прерываний. При установке в 1 включает круговой режим, при котором измерения автоматически следуют одно за другим. ADCSRA |= (1<<ADFR);
ADATE для ATtiny13 и др. Лог 1 - по положительному фронту считает
ADIF бит, также используемый только в режиме прерываний. Это флаг прерываний, который устанавливается в определённых условиях.
ADIE ADCSRA |= (1<<ADIE); // бит, включающий режим прерываний. 
ADPS2 ADPS1 ADPS0 величина делителя частоты, чтобы частота работы АЦП была не больше 200 кГц, иначе точность измерений будет очень малой и мы просто растеряем самые младшие биты.
0 0 0 2
0 0 1 2
0 1 0 4
0 1 1 8
1 0 0 16
1 0 1 32
1 1 0 64
1 1 1 128. ADCSRA |= (1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0); // Делитель 128, т.е. при частоте 8000000/128 = 62,5 кГц, т.е. меньше 200 кГц, точность нормальная

ADMUX — регистр для управления каналами мультиплексора АЦП, биты:
7 6 5 4 3 2 1 0 Описание
REFS1 REFS0

Режим использования опорного напряжения

0 0 откл
0 1 внутреннее опорное напряжение, равное напряжению питания
1 0 опорное напряжение подаётся на вход AREF извне
1 1 внутреннее 2,56 вольт с использованием внешнего конденсатора
ADLAR

бит организации расположения измеренных 10 битов в двух байтах регистровой пары данных ADCH и ADCL

-
MUX3 MUX2 MUX1 MUX0 биты, включающие определённый канал мультиплексора:
0 0 0 0 ADC0
0 0 0 1 ADC1
0 0 1 0 ADC2
0 0 1 1 ADC3
0 1 0 0 ADC4
0 1 0 1 ADC5
0 1 1 0 ADC6
0 1 1 1 ADC7
1 1 1 0 1.30V(VBG) - для калибровки АЦП
1 1 1 1 0V (GND) - для калибровки АЦП

Регистровая пара ADCH и ADCL, состоящая из старшего и младшего байта в которую заносится измеряемый результат. А как именно он туда укладывается, этот результат, зависит от состояния бита ADLAR (регистр ADMUX). Если бит ADLAR=0, то младшие 8 бит результата находятся в младшем байте регистровой пары, а 2 старших бита — в младших битах старшего байта. Если же бит ADLAR у нас выставлен (=1), то 8 самых старших бит результата находятся в старшем байте, а 2 младших в 2 старших битах младшего байта регистровой пары.

ADCH  ADCL
биты 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ADLAR=0 - - - - - - ADC9 ADC8 ADC7 ADC6 ADC5 ADC4 ADC3 ADC2 ADC2 ADC0
ADLAR=1
ADC9 ADC8 ADC7 ADC6 ADC5 ADC4 ADC3 ADC2 ADC1 ADC0 - - - - - -

. Если же бит ADLAR у нас выставлен, то 8 самых старших бит результата находятся в сатршем байте, а 2 младших в 2 старших битах младшего байта регистровой пары. Второй вариант нам интересен при исользовании 8-битного режима. В данном случае мы читаем только старший байт.