Ok nun funktioniert es endlich!
Das "Problem" war einfach, dass ich den ADC auf 12Bit laufen lasse aber das Ergebnis der Wandlung in einen Char reinquetschen wollte der nur 8Bit groß ist.
Die 140 oder so die immer angezeigt wurden waren im Endeffekt das Rauschen des ADCs + ein paar Fetzen des eigentlichen Ergebnisses. Ich habe den Rückgabewert nun als Int deklariert und schwups funktionierte es