Thanks for your comments... To clarify what is happening I got an oscilloscope and repeated the test this time with sin waves (instead of square wave)... I modified the arduino code to sample 2500 times during a second and report the maximum value... Now Oscope, MM, and Arduino give me three different numbers: Oscope(Vp-p): 2.5V, Multimeter: 0.7V, Arduino: 1.55V
OK. That 2.5V peak to peak equates to 1.25V peak (rectified) which equates to 0.88 V rms (sine wave, so divide peak by square root 2). So your scope and multimeter roughly agree - assuming that, as you stated before, you're using rms on the multimeter. What you're measuring with the Arduino is essentially random points in the wave. Add to that the likelyhood that the ground reference your Arduino is using almost certainly isn't floating like the multimeter. Further you look as if you're using the default voltage reference for the Arduino ADC which is just the 5 volt rail for the Arduino and is VERY poorly specified - I've seen under 4.5V on the input of an Arduino that's getting its power from the USB port.
So, you need to sort out:-
1) Getting your Arduino powered from a floating supply. That is, you don't want your measurement referenced to ground. You can just hook a 9V battery up to the Vin and GND pins on most flavours of Arduino. Obviously you CAN'T do this and use the USB port for serial output at the same time and that will ground reference the whole setup again.
2) Getting a reliable voltage reference on the Arduino. Feed the VREF pin on the Arduino from a stable reliable source such as a proper voltage reference chip, or a decent calibrated (floating) bench power supply. Then use analogReference(EXTERNAL) to tell the Arduino to use that.
3) Hunt down some code that lets you read the ADC in a reliable SYNCHRONOUS fashion using accurately timed reads. Using analogRead() and delay() means that you've no real idea at what time each sample is taken. There are plenty of examples out there.
4) Make your ADC readings at LEAST twice as fast as your 1kHz stimulation signal, i.e 2kHz or greater. Dr Nyquist is your friend here.
5) Convert your stream of data into an rms value by doing the arithmetic. You won't be able to do this in real time. Buffer a few samples (say 50-100) and then post process them to rms.
6) In the absence of any evidence to the contrary I suspect that you've got no circuitry between your probes and the Arduinos ADC input. You're going to need some signal conditioning here and some input protection as well. Your 14V peak-to-peak stimulus easily exceeds the maximum rating for the Arduino input and that could lead to the escape of magic smoke.
Ian