В pic16 есть аппаратный умножитель 8x8 Если да, получаем 16- разрядный результат за 1 такт; Разрядность суммы = (0xffff * 10^4) => 4, байта; 4 байта при восьмибитном аккумуляторе подсуммируются/вычитаются где- то за 5 тактов.
Итого имеем массив квадратов за период(кольцевой буфер); При получении новых данных с АЦП, новый квадрат перетирает самый старый квадрат. Перед удалением, самый старый квадрат вычитается из суммы, новый прибавляется к сумме. Только берем корень каждый раз из 4- байтной величины- это тяжеловато.