Entonces el problema lo tenes en la lectura del ADC, y que seguramente no tenga el tiempo suficiente para que al cambiar de canales se logre el nivel correcto.
Supongo esto porque:
1 solo schedule, significaria leer una entrada y guardar el valor, y no cambiaria para nada el canal. Asi que mientras no convierte esta cargandose correctamente.
Ya 2, implica que vos cambies de canal para leer otra entrada, esperes el tiempo correcto de adquisicion y recien alli pases a convertir, sino vas a tener errores.