What about a simple hack? Something along these lines:
function getFaculty($facultyType) {
$type = str_replace('_', ' ', $facultyType);
return DataObject::get( 'FacultyPage', "`FacultyType` = '$type'" );
}
That code simply replaces all underscores with spaces. Therefore underscore is an alias for space.
In the template you would then write:
<% control Faculty(Associate_Professor) %>
<p><a href="$Link">$Title</a></p>
<% end_control %>
Note that I put an underscore instead of a space there. And that I wrote Faculty instead of getFaculty, since you usually skip the "get" in the Template and it still maps to to correct function.