Находите угол пушки, находите угол между точкой поворота и курсором, добавляете (либо вычитаете, в зависимости от положения) либо фиксированную "дельту" к углу пушки, либо % от разницы (будет просто разное движение - равномерное или замедленное). Нахождение угла легко найти по запросу - "угол между двумя векторами".