Soul play and Exhaust triggers
Soul costs no Energy, draws two cards and Exhausts. After Haunt is active, playing Soul also causes a random enemy to lose HP. Soul Storm counts Souls in the Exhaust Pile, so Souls already used can increase its attack damage.
Those effects do not all aim at the same target. Haunt’s random enemy and Soul Storm’s chosen attack target should be considered separately in multi-enemy fights. A generated Soul that has not yet been played does not already occupy the Exhaust Pile.
Death March sequencing
Death March increases its damage for cards drawn during the turn. Playing available Souls first can improve that count, provided the deck can still afford the attack afterward. Drawing another costly card is not the same as obtaining the Energy to play it.
The complete Souls strategy covers generation, setup defense and how much of the deck should consist of payoffs. Adding Haunt, Soul Storm and Death March without enough Souls does not reproduce the connected sequence.

Haunt
Soul
Soul Storm
Death March