У меня ATXmega128A1 (не AU), но ADCB вроде бы работает нормально - я им температуру чипа измеряю, тогда как ADCA используется для рабочих целей. Может быть, вы калибровочные данные не использовали? Без них и у меня фигню показывало.
ADCB.CALL = ReadSignatureByte( offsetof(NVM_PROD_SIGNATURES_t, ADCBCAL0) );
ADCB.CALH = ReadSignatureByte( offsetof(NVM_PROD_SIGNATURES_t, ADCBCAL1) );
ADCB.CTRLB = ADC_RESOLUTION_12BIT_gc; // 12 bit conversion
ADCB.PRESCALER = ADC_PRESCALER_DIV256_gc; // peripheral clk/256 (32MHz/256=125KHz)
ADCB.REFCTRL = ADC_REFSEL_INT1V_gc; // internal 1V reference
ADCB.CH0.CTRL = ADC_CH_INPUTMODE_INTERNAL_gc | ADC_CH_GAIN_1X_gc;
ADCB.CH0.MUXCTRL = ADC_CH_MUXINT_TEMP_gc;
// Internal Temp Sensor
ADCB.CH1.CTRL = ADC_CH_INPUTMODE_INTERNAL_gc | ADC_CH_GAIN_1X_gc;
ADCB.CH1.MUXCTRL = ADC_CH_MUXINT_SCALEDVCC_gc; // Internal VCC Sensor