Snarky answer: N beach on a southwest wind, S beach on a north wind
Of the two, I enjoy St Joe on a north wind on the south beach more because of the excellent waves. And because it stays good even when the wind clocks to NNE.
But I prefer St Joe in a southwest over Michigan City. St Joe has a much longer pier and more fetch so you get better waves.
For me it's always a decision based on wind direction, wind speed, wave potential and distance. And a pier is a huge bonus because of the wave "bending", not to mention the benefit it provides when there is a strong current.
St Joe and South Haven are very similar, so they are good alternatives to each other. One August day (N 25-28) I went to St Joe to find the place packed with people ("Venetian Festival") so I zoomed up to South Haven and the beach was almost empty!
Andrew