Non è quello il problema, analogRead() può funzionare anche indicando il canale da leggere (es. 0 invece di A0):
int analogRead(uint8_t pin)
{
uint8_t low, high;
#if defined(analogPinToChannel)
#if defined(__AVR_ATmega32U4__)
if (pin >= 18) pin -= 18; // allow for channel or pin numbers
#endif
[etc...]
Come già più volte detto l'array è inutile di per se, tanto più che è un array di int in cui si cerca di salvare un float.
Ciao, Ale.