Google automatically generates the title and snippet to use for any given page of your website from both that page's content and references to that page on the wider internet, and describes the goal of these attributes "to best represent and describe each result and explain how it relates to the user's query". Therefore, don't be surprised if a different title and/or snippet is shown for different search queries.
Google commonly uses a page's "title" meta tag as the title in search results, but if there are any problems with this then Google may choose to generate it's own title from other parts of the page's content. Problems with your "title" tag are generally related to it not being a good description of the content of the page (which can happen if you use the same title on many pages of your site),if you don't make the effort to properly describe the content of your page, or if it contains too many repeated keywords or is otherwise spammy. It is worth noting that even if there are no problems with your "title" meta tag Google may adjust it's wording to better match a user's search query.
There are two main ways to influence the snippet that Google uses to describe your site. If your web page has a particularly good "description" meta tag that does not suffer any of the same problems that can affect "title" meta tags and offers an accurate description of your page's content, then this may be used as your page's snippet. You can also add "structured data" to your web page's code to enable Google to display a "rich result" for your web page and help your website stand out. Examples of "rich results" include when Google displays recipe or event information in the search results (using information provided by websites using "structured data"),but there is a large, and ever growing range of supported content types.