у тебя ШИМ не туда воткнут. Меняй ШИМом напряжение питания пьезика, а на модуляцию подавай прямоугольник программно генерируемый. Изменением питания громкость регулируется относительно плавно и в достаточно широких пределах. Но АЧХ у пьезиков, есс-но, кривая до невозможности.