You could use dbt External Tables package https://github.com/dbt-labs/dbt-external-tables and create an external table in Snowflake that looks at the S3 bucket.
Then in dbt you could query the stage and use METADATA$FILE_LAST_MODIFIED
field that is attached to every file, in order to process only the last one.
Have a look at this as well: https://medium.com/slateco-blog/doing-more-with-less-usingdbt-to-load-data-from-aws-s3-to-snowflake-via-external-tables-a699d290b93f