Александр,
У вас основной цикл программы микроконтроллера (МК), формирующей синус, выполняется за 11 машинных циклов (МЦ). Вследствие этого частота выборок для кварца 10 МГц составляет fS=10000/11=909 кГц, из-за чего на период синуса 137 кГц приходится всего 909/137=6.6 выборки.
По-моему, 6.6 выборки маловато. С другой стороны, в основном цикле МК используются команды CLI и SEI, которые, на мой взгляд, можно просто убрать, так что время выполнения будет 9 МЦ и выборок станет чуток побольше, а именно 8.1.
Но и это не предел. Можно легко переделать программу под 7 МЦ, тогда выборок на период станет 10.4, что как видим в полтора раза лучше первоначального варианта.
Ну, а для 20-ти МГц кварца количество выборок на период составит 20.8, что в три раза превосходит первоначальное значение.
Вывод такой - выбрать максимальную частоту кварца и переделать программу МК.