You can use
get_pages()
; orget_posts()
; orWP_Query
to get a list of pages. They differ somewhat in details, so read up on that. But generally all of them should suffice, for you to achieve your goal. Just choose the best fitting one for your purpose.
For getting pages by name or better title
you can use:
Or use:
if you decide to use the ID
or the post object.
To save the user selection you probably want to make use of the Options API.