There's no "Wait Until Event Takes Place" activity in Journey Builder. You can place a wait activity in your journey and test data from your contact model in decision splits that take place after your fixed wait activity completes, go down path A for "New" or path B for "Closed Won". But you can't "wait until" the Opportunity Stage changes and then make your decision.
The best way to think of a Journey Builder Interaction is the stream of activities that should be executed in response to an event taking place - there's essentially a one-to-one relationship between the event and the JB Interaction. The change in the stage of your opportunity constitutes an event. In your instance, you may have multiple events - change to Prospecting, Qualification (...) and Close Won. Each would likely have it's own Journey Builder Interaction that handles the change to the opportunity stage (the event).
Where your Journey Builder Interactions contain multiple steps, you'll likely want to use Exit Criteria within them to remove contacts from that Interaction where the comms are no longer pertinent. For example, you have a stream of communications to send to Contacts with Opportunities in the "Prospecting" stage. When the stage of the Opportunity changes to something other than "Prospecting", you'd like to remove them from this Journey and have another Interaction take over, say the JB Interaction you've created that handles the "stage updated to Negotiation/Review" event. To exit these contacts out of your Prospecting Interaction, ensure you use Contact Builder's Data Stream feature to sync the data you need in the contact model so that it's available to make that determination in your decisioning in the Interaction.
Note: If you're managing your sales funnel using Opportunities, by default there's no lookup field in that object to the Lead/Contact (Marketing Cloud "sendable objects"). There are lookups to sendable objects like the Opportunity Owner (User - not very useful). To get your Journeys reliably firing off changes to Opportunities, you'll need to create a custom lookup field in the Opportunity object and populate it with the Contact/Lead associated with the Opportunity using a Process/Trigger/Flow in Sales Cloud. Without doing this, you'll only be able to inject Contacts that have at least one opportunity in stage x and make decisions about Contacts that have at least one opportunity in stage y.