Hallo

Sind das die Werte mit internem PullUp? Wenn ja, dann würde ich den ADC über Bord werfen und es mal so versuchen:

Code:
void  OdometryData (unsigned int  *data)
{
   Vorbereitung zum Lesen der Odometrie-Sensoren.
*/
DDRC &= ~((1 << PC0) | (1 << PC1));   // Port auf Input=>Back-LEDs gehen aus
PORTC |= ((1 << PC0) | (1 << PC1));   // PullUps einschalten für PC0 und PC1 
ODOMETRIE_LED_ON;                     // Odometrie-LED's einschalten

/*
   Linken Odometrie-Sensor lesen
*/
if (PORTC & (1<<PC1)) data[0]=1023; else data[0]=0;

/*
    Rechten Odometrie-Sensor lesen
*/
if (PORTC & (1<<PC0)) data[1]=1023; else data[1]=0;

}
Die 1023 sind nur ein Beispiel, grundsätzlich würde wohl auch eine direkte Zuweisung funktionieren:

data[0]=(PORTC & (1<<PC1))/2;
bzw.
data[1]=(PORTC & (1<<PC0));

Nach "ODOMETRIE_LED_ON;" muss vermutlich eine kleine Verzögerung eingebaut werden weil die LEDs nicht sofort voll leuchten.

Noch eine Anmerkung zu übertriebenen Bitschiebereien. WHEEL_LEFT 1 wäre hier wohl übersichtlicher:
#define WHEEL_LEFT (1 << MUX0) //ADC1
#define WHEEL_RIGHT 0 //ADC0
Die Definition aus asuro.h

Gruß

mic