Standard deviation and variance (one is the square root of the other) are basic measurements of the 'spread' of data. For time series data we can think of it as a measure of the noisiness of the data, or as a 'very' robust way of detecting transient (fast changing) behaviors in noisier or drifting data.

This is a batch-analysis of the data, so 5 samples are needed before we have a standard deviation result. Coding a running-standard deviation would be a good thing to have... :)

#include <math.h>  //required for our sqrt function!

int potPin = 0;    // select the input pin for the potentiometer
int ledPin = 13;   // select the pin for the LED

int accVal = 0;    // accumulation of a sum for averaging
int currentAVG = 0; //current average
int lastVal = 0;  //storage for the 'last' analog input value
int avg = 0;    // average result
int val;       // variable to store the value coming from the sensor
int howManyToAverage = 5;  //number of individual values to average
int sampleDeviation = 0;  //an individual samples' 'deviation'
int sampleDeviation2;  //each individual samples' squared (deviation)
int sampleDeviationSum = 0;  //each individual samples' squared (deviation)
int standardDeviation = 0; //the standard deviation result

void setup() {
pinMode(ledPin, OUTPUT);  // declare the ledPin as an OUTPUT
Serial.begin(9600);	// opens serial port, sets data rate to 9600 bps
}

void loop() {
int i;

digitalWrite(ledPin, HIGH);    // sets the LED off

accVal = 0;  // clear the accumulator

for (i=0; i < howManyToAverage; i++)
{
val[i] = analogRead(potPin);    // read the value from the sensor

//Serial.print("Raw Value: ");
//Serial.println(val, DEC);  // print as an ASCII-encoded decimal

accVal = accVal + val[i];
//Serial.print("Accumulator: ");
//Serial.println(accVal, DEC);  // print as an ASCII-encoded decimal

delay(10);
}
avg = accVal/howManyToAverage;
//Serial.print("Simple Average Value: ");
//Serial.println(avg, DEC);  // print as an ASCII-encoded decimal

for (i=0; i<howManyToAverage; i++)
{
sampleDeviation = abs(val[i]-avg);
sampleDeviation2[i] = sampleDeviation*sampleDeviation;
}

sampleDeviationSum = 0;
for (i=0; i<howManyToAverage; i++)
{
sampleDeviationSum = sampleDeviationSum + sampleDeviation2[i];
}

standardDeviation = sqrt(sampleDeviationSum/(howManyToAverage-1));

Serial.print("Standard Deviation Value: ");
Serial.println(standardDeviation, DEC);  // print as an ASCII-encoded decimal
}