I don't know a good way either, but maybe this can give you ideas:
Replace[FactorList[5 (Sin[5 x + \[Phi]] - Sin[x]), Trig -> True], {f_, _} :>
Solve[TrigReduce[f^2] == 0 /. 1 + Cos[q_] :> 1 - Cos[q + Hold[Pi]], x,
Reals], 1] // ReleaseHold // Apply@Join
(*
{{x -> ConditionalExpression[-(\[Phi]/4) + (Pi*C[1])/2,
Element[C[1], Integers]]},
{x -> ConditionalExpression[-(Pi/6) - \[Phi]/6 + (Pi*C[1])/3,
Element[C[1], Integers]]}}
*)
It's difficult to combine sequences in the original result, since the instances of C[1] are really independent variables. Then there are oddities like this:
Solve[{Cos[x] == 1}, x, Reals]
(*
{{x -> ConditionalExpression[2*Pi*C[1], Element[C[1], Integers]]}}
*)
Solve[{Cos[x] == -1}, x, Reals]
(*
{{x -> ConditionalExpression[-Pi + 2*Pi*C[1],
Element[C[1], Integers]]},
{x -> ConditionalExpression[Pi + 2*Pi*C[1],
Element[C[1], Integers]]}}
*)
The Hold[Pi] in my code gets around the problem with the last example.