That is quite simple:
#define NUM_READINGS 5
uint16_t readings[NUM_READINGS];
uint8_t readings_idx = 0;
store_reading(value) {
readings[reading_idx++] = value;
if (reading_idx >= NUM_READINGS) reading_idx = 0;
}
get_average {
uint32_t result = 0;
for (uint8_t i = 0; i < NUM_READINGS; i++) result += readings[i];
return result / NUM_READINGS;
}