How do I validate a number against a list of valid numbers?
You can create a custom webform validation.

In a custom module you will need to implement CUSTOM_MODULE_webform_element_alter in which you will define a new validation method.  

You have to implement the callback method validate() as it is described in the documentation above.

In your validate method you have to compare the submitted value with your vocabulary terms using something similar to the following code 

// ...
$vid = 'vocabularyname';
$terms = \Drupal::entityTypeManager()-&gt;getStorage('taxonomy_term')-&gt;loadTree($vid);
foreach ($terms as $term) {
    if($value == $term-&gt;name){
        // ... found 
    }
} 


About the 2nd part of you question / conditional enabling of fields

Webform built-in conditional logic probably cannot handle it as it only depends on values and NOT validation state of another field.  Perhaps it can be done using conditional_fields but I have not personally tried it.