Average of reading on IR sensor

To smooth an analog sensor I always do something like:

void loop() {
  x = analogRead(PIN);

  if (x > reading) {
    reading = reading + 1;
  } else if (x < reading) {
    reading = reading - 1;
  }
}