The Sales Stage field can be made context sensitive based on a value selected in another picklist.
Setup your Sales Stages and Percentages as normal from Settings > Picklist Settings > Opportunity Picklists > Edit Opportunity Picklists
Make Context Sensitive
- Under Additional Settings > Opportunity > enable Allow context sensitivity for the Sales Stage field on Opportunities
- Then in Field to use as the controller for the context sensitivity on Sales Stage specify the field you want to use to control your Sales Stages. You will need to use the field name rather than field label, so for example if using a custom field you will use the value equivalent to cf_123 (you can find the actual ID of your custom field by going to Settings > Custom Field Settings > the relevant Module > look at the value in the Database Name column)
- Save your settings then return to Edit Opportunity Picklists
- You will have an additional option present - Sales Stage Context Sensitivity - edit this.
- For each of your Sales Stages you will have a series of check boxes with the values from your controller field, simply check the controllers under which you want your Sales Stages to appear.