You can use SP_cons_list() to create a new list cell from its head and tail. That is,
SP_term_ref my_list = SP_new_term_ref();
if (!SP_cons_list(my_list, head, tail)) { goto error_handling; }
corresponds roughly to the Prolog code:
My_List = [Head|Tail]
If speed is not very important it may be simplest to use SP_read_from_string(), e.g.:
SP_term_ref my_list = SP_new_term_ref();
if (!SP_read_from_string(my_list, "[leftmost,step,up,all].", NULL)) {
goto error_handling;
}
// my_list is [leftmost,step,up,all] here.
Of course, it is even easier to do as much as possible of this in Prolog.