What is ad hoc approval ?
It is usually a process where the user can define who's going to be the next person in the process. In this case who is going to approve the request. The next approver is not define in the process, but is decided by the end user. So they have full flexibility in term of deciding who participates in the approval process.
How to implement it ?
First define an area on the form for the end user to specify the next approver in the process.
Have a process with a user service and specify the initial user from a variable. That variable would get populated with the approver name defined by the end user when they fill the form.