Ah, shadows. They still are bothering after so many people spent years trying to improve them.
Whether your engine is deferred or forward, the shadow pass should be quite the same, and suffer the same issues.
You are correct, this is a famous problem. Some methods can improve these artifacts in some cases, see the methods mentioned already, or for example "light-perspective-cascades", "variance shadow maps", "shadow atlas" (compute optimal resolution for shadows of each light given available memory, and arrange them accordingly in a big buffer), "moment shadow mapping".
Some other workarounds are "baking" the shadow maps if light and object do not move.
I am missing a lot, but don't recall seeing a solution that works well when resolution / number of filtering passes / samples is restricted...