You do it via dynamic call to a microflow rather than workflow. As you add a new workflow to your application, you also create a microflow which submits it. In your UI when you "select a workflow" and submit it, you dynamically call the above created microflow according to your selection which would in turn submit the workflow.
workflow has predefined routing, if the workflow step is dynamic? or the whole workflow routing is dynamic?