Using the Flow Builder, you can create a record-triggered Flow to do this for you.

 1. Create a record-triggered Flow to run when record created or updated, before save.
 1. Choose your object.
 1. Add a condition to match the business need "dynamically based on another field" i.e now pick whatever field you are looking to check before determining what the subsequent picklist value will be.
 1. Create a Decision block with 2 outcomes
 

Using the Process Builder, you can define a Process to do this for you.