ADC unable to read from multiple channels
I think the issue is the way you set the value of ADMUX. By using |= you are not able to set the value of a bit to 0, only to 1. So when you want to set the value of the bit MUX0 to 0 it is still 1 from the previous assignment (1 | 0 == 1). Try setting each bit to the desired value (for this you cat find tons of tutorials online about bitwise operations: http://www.avrfreaks.net/forum/tut-c-bit-manipulation-aka-programming-101?page=all ).