Para sacar el valor medio, cuánto tiempo sería recomendable?
El valor medio es lo que lees a la salida del filtro (aunque siendo estrictos, no es el valor medio teorico), podés leerlo cada 250ms si querés, pero si te falta filtrado y vas a reforzar con un filtrado digital conviene mayor velocidad, tipo una muestra cada 50ms...100ms para no retardar tanto la respuesta.
El filtro que uso es de 2do orden, cómo podría hacer un filtrada por software?
Un algoritmo sencillo de pasabajo de 1er orden es: Xn = Xn-1 + K*(ADC-Xn-1) ; (con K < 0.25 preferiblemente)
Si NO se usa punto flotante se elige un valor de K que simplifique el proceso, por ejemplo 1/4 , 1/8 etc pues en lugar de una multiplicación se hace un desplazamiento.
En C sería
X+=(ADC-X)>>3 ; // K=1/8
Puede filtrarse en cascada, pero no hay que entusiasmarse con las etapas porque la evolución se pone lentísima.
Hay por supuesto mejores filtros, si te interesa ponete a leer sobre filtros digitales.