Si las muestras que entran son siempre cada 100useg, tu procesamiento de dicho dato deberá ser menor que este cálculo.
Una forma es por ej, guardar el valor A/D en una variable temporal y marcar un flag en la rutina de interrupción (asumiendo que lo haces por interrupción). En el bloque principal del programa te fijas si el flag está encendido , en cuyo caso lo haces 0 y comienzas el proceso de la señal, tomando la variable temporal y pasandola a otra variable que sería la variable del cálculo.
Si durante el cálculo justo llega otra señal , se guardará en la variable temporal y se volverá a encender el flag (lo cual no importa ya que no usamos más la variable temporal y el flag fue borrado al principio).
El tema es que tarde o temprano si tu cálculo demora más que 100useg, llegará el momento en que estés con un dato terminando de calcular, tengas un dato temporal esperando y llegue el nuevo dato temporal.
Saludos