Firstly I though my Particle was unable to read analog values at all.
No matter what input it read 300-350 all pins (a).
Then I wired them all to gnd and it read <7 on all.
Connected to 3v3 and they all read > 4080.
With a bit more testing I found that reading the same pin twice would leave the value at 300-350, but if I read a different pin first, then it was fine.
So read a0 and get a good value, and then read a0 again - gives a bad 300-350 value. Continue to read a0, value varies but is still wrong and between 300-350.
But read a0 and get a good value, then read a1 (get a good value), read a0 and get a good value. Always works.
Am I missing something. Do I have to read different pins each time. (I know frequent polling is bad).
Just though this may help anyone else who thinks their analog read is broken.