If you are using an external multiplexer you MUST add a time delay between selecting an input and analogRead(). The Arduino does that automatically when you are using the INTERNAL multiplexer but doesn't if you use an EXTERNAL multiplexer.
sets the mux and then starts the conversion in the very next instruction, which is plain silly IMO
Quotesets the mux and then starts the conversion in the very next instruction, which is plain silly IMONo the delay IS that space between one instruction and the next. With the correct input impedance it is sufficient to charge the sample and hold capacitor. This is because it is a very small capacitor and the sequence of operations that the A/D instructions kick off reserve a clock cycle for the sample acquisition. See the data sheet.
The outputs 10,11,12,13 are wired fine